package com.yssoft.service.core;

import com.alibaba.fastjson.JSONObject;
import com.github.pagehelper.PageHelper;
import com.yssoft.entity.core.TManagementSystem;
import com.yssoft.mapper.core.TManagementSystemMapper;
import com.yssoft.utils.LayuiUtil;
import com.yssoft.utils.UserHelper;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @author 陈翼东
 * @time 2018/4/25 下午 04:14
 * @  管理制度service
 */
@Service
public class ManagementSystemService {
    
    private static Logger logger=Logger.getLogger(ManagementSystemService.class);
    
    @Resource
    private TManagementSystemMapper  managementSystemMapper;
    /**
     * 分页查询管理制度信息
     * @param pageNumber 当前页数
     * @param pageSize 页面显示数据条数
     * @param managementSystemName 管理制度名称
     * @return
     */
    public JSONObject queryManagementSystemPage(int pageNumber, int pageSize,String  managementSystemName) {
        //获取当前登陆账号信息
        Integer entId = UserHelper.getCurrentCompanyId();//企业id
        Map<String,Object> param=new HashMap<>();
        param.put("companyId",entId);
        param.put("managementSystemName",managementSystemName);
        PageHelper.startPage(pageNumber,pageSize);//下面第一个查询结果进行分页
        List<Map<String,Object>> personList = managementSystemMapper.selectAllSql(param);
        int count = managementSystemMapper.selectCountSql(param);//查询条数
        JSONObject jsonObject = LayuiUtil.getJSONObjectByMap(personList,count,"","");
        return jsonObject;
    }

    /**
     * 根据管理制度id查询管理制度信息
     * @param managementSystemId 管理制度的id
     * @return  管理制度实体
     */
    public TManagementSystem queryManagementSystemById(Object managementSystemId){
        try {
            return managementSystemMapper.selectByPrimaryKey(managementSystemId);
        } catch (Exception e) {
            logger.error("com.yssoft.service.core.ManagementSystemService.queryManagementSystemById根据管理制度id查询管理制度信息报错："+e.getMessage());
            return null;
        }
    }
    /**
     * 根据管理制度实体查询管理制度信息（可以使用实体中多个条件）
     * @param managementSystem 管理制度的对象
     * @return  管理制度实体
     */
    public TManagementSystem queryManagementSystemByEntity(TManagementSystem managementSystem){
        try {
            return managementSystemMapper.selectOne(managementSystem);
        } catch (Exception e) {
            logger.error("com.yssoft.service.core.ManagementSystemService.queryManagementSystemByEntity根据管理制度对象查询管理制度信息报错："+e.getMessage());
            return null;
        }
    }
    
    /**
     * 添加管理制度对象
     * @param managementSystem 管理制度实体，添加的内容应使用set方法将值设置完
     * @return 返回0则失败，返回大于0的数表示成功
     */
    public void addManagementSystem(TManagementSystem managementSystem){
        try {
            managementSystemMapper.insert(managementSystem);
        } catch (Exception e) {
            logger.error("com.yssoft.service.core.ManagementSystemService.addManagementSystem添加管理制度报错："+e.getMessage());

        }
    }
    
    /**
     * 使用管理制度的id删除管理制度信息
     * @param entityId 管理制度的id
     * @return 返回0则失败，返回大于0的数表示成功
     */
    public int delManagementSystem(Object entityId){
        try {
            TManagementSystem managementSystem = managementSystemMapper.selectByPrimaryKey(entityId);
            managementSystem.setDeleteFlag("1");
            return managementSystemMapper.updateByPrimaryKeySelective(managementSystem);
        } catch (Exception e) {
            logger.error("com.yssoft.service.core.ManagementSystemService.delManagementSystem删除管理制度报错："+e.getMessage());
           return 0;
        }
    
    }
    
    /**
     * 多个条件删除管理制度信息
     * @param managementSystem 管理制度的实体
     * @return 返回0则添加失败，返回大于0的数表示添加成功
     */
    public int delManagementSystem(TManagementSystem managementSystem){
        try {
            return managementSystemMapper.delete(managementSystem);
        } catch (Exception e) {
            logger.error("com.yssoft.service.core.ManagementSystemService.delManagementSystem删除管理制度报错："+e.getMessage());
            return 0;
        }
    }

        /**
         * @方法名称: ManagementSystem(
         * @功能描述: 修改管理制度
         * @作者: 于兴达
         * @创建时间: 2018年4月26日 下午3:14:13
            * @param managementSystem
         */
    public void editManagementSystem(TManagementSystem managementSystem){
        managementSystemMapper.updateByPrimaryKeySelective(managementSystem);
    }
    
    
    
}
